"""轻量化 KGC（密钥生成中心）示例，用于生成 partial private key。

注意：本文件仅为演示，不用于生产环境。
"""
import hashlib
import secrets
from typing import Tuple


def kgc_partial_keygen(user_id: bytes) -> int:
	"""根据 user_id 生成一个伪随机的 partial private key（整数）。

	示例：对 user_id 加盐后用 hashlib.sha256 导出 32 字节，再转为整数。
	"""
	salt = secrets.token_bytes(16)
	h = hashlib.sha256()
	h.update(salt)
	h.update(user_id)
	return int.from_bytes(h.digest(), "big")

def kgc_serialize_partial(pk_int: int) -> bytes:
	return pk_int.to_bytes((pk_int.bit_length() + 7) // 8 or 1, "big")
# kgc.py

# TODO(Copilot): 实现 kgc_partial_keygen(user_id, curve)
# - 输入: user_id (bytes), curve
# - 输出: partial_private_key (int)
